An Internet Protocol (IP) network is a distributed environment comprising a plurality of servers and routers. Some of the servers may be content servers storing content to be shared between other servers and users.
When searching for a specific content, a problem is to find a server that provides that specific content.
Existing mechanisms for searching for a content are index servers, flooding and various complex algorithms.
In an index server, the content owners publish the information of the resource to the index server. When someone wants to search for a content, he sends a request to the index server and the index server responds to the request. This is an efficient solution but if the index server fails, the entire search mechanism fails.
In flooding, each server records the IP addresses of it's neighbours. When a server wants to search for something, it sends the requests to all neighbouring servers. Then the neighbouring servers forward the request to the neighbours of the neighbouring servers. This is obviously not an efficient solution since it occupies a lot of bandwidth but the solution is not dependent on one single point as the index server.
Complex Algorithms such as Chord, Pseudo-DHT can be used to optimize the behaviour of the flooding. The algorithms make it possible to send the requests to only a subset of the neighbours.